package com.sicau.socialpracticesystem.service;

import com.sicau.socialpracticesystem.entity.param.PageParam;
import com.sicau.socialpracticesystem.entity.param.team.TeamQueryParam;
import com.sicau.socialpracticesystem.entity.param.team.TeamRouteQueryParam;
import com.sicau.socialpracticesystem.entity.po.Team;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sicau.socialpracticesystem.entity.vo.PageDataVO;
import com.sicau.socialpracticesystem.entity.vo.team.TeamVO;
import com.sicau.socialpracticesystem.entity.vo.team.TeamRouteVO;

import java.util.List;

/**
 * <p>
 * 支队表 服务类
 * </p>
 *
 * @author sxt && ttxxi
 * @since 2021-04-26
 */
public interface TeamService extends IService<Team> {

    /**
     * 根据条件查询团队信息
     *
     * @param teamQueryParam 查询 条件
     * @return 团队信息
     */
    PageDataVO<TeamVO> queryTeamByConditions(TeamQueryParam teamQueryParam);

    /**
     * 查询所有团队路线
     *
     * @param teamRouteQueryParam 团队路线查询参数
     * @return 团队路线
     */
    List<TeamRouteVO> queryAllTeamRoute(TeamRouteQueryParam teamRouteQueryParam);

    /**
     * 根据id查询团队信息
     *
     * @param id 团队id
     * @return 团队信息
     */
    TeamVO queryTeamById(Integer id);

    /**
     * 查询当前用户为队长的团队
     */
    List<TeamVO> queryMyLeadingTeam();

    /**
     * 查询当前登录用户的所在团队信息
     *
     * @param pageParam 分页查询参数
     * @return 登录用户的所在团队信息集合
     */
    PageDataVO<TeamVO> queryCurrentTeams(PageParam pageParam);
}
